package com.huangguolin.cloud.file.repository;

import com.huangguolin.cloud.file.entity.SearchFileEntity;
import com.huangguolin.cloud.mybatis.entity.PtFileEntity;
import com.huangguolin.cloud.mybatis.flexigrid.PagingEntity;
import com.huangguolin.cloud.mybatis.ztree.ZtreeEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface FileDao {

    List<ZtreeEntity> modifyNameZtreeAll(@Param("fileName")String fileName);

    /**
     * 分页查询
     * @param search
     * @param paging
     * @return
     */
    List<PtFileEntity> queryFileListByPage(@Param("search") SearchFileEntity search,@Param("paging") PagingEntity paging);

    /**
     * 文件总数量
     * @param search
     * @return
     */
    Integer queryFileTotal(@Param("search") SearchFileEntity search);

    /**
     * 插入文件信息
     * @param entity
     */
    void insertFile(@Param("entity") PtFileEntity entity);

    /**
     * 查询文件列表
     * @return
     */
    List<PtFileEntity> queryFileList();

    /**
     * 更新文件信息
     * @param ptFileEntity1
     */
    void updateFile(@Param("entity")PtFileEntity ptFileEntity1);

    /**
     * 根据文件路径删除文件
     * @param filePath
     */
    void deleteFileByPath(@Param("filePath") String filePath);

    /**
     * 更新文件的父亲文件夹
     * @param item
     */
    void updateFileParentId(@Param("entity") PtFileEntity item);


    /**
     * 文件下载
     * @param fileUuid
     * @return
     */
    PtFileEntity queryFileById(@Param("fileUuid") String fileUuid);





    /**
     * 查询文件信息
     * @param fileUuid
     * @return
     */
//    PtFileEntity queryParentFileById(@Param("fileUuid") String fileUuid);

    /**
     * 查询ztree文件列表
     * @return
     */
    List<ZtreeEntity> queryFileZtreeall();
    PtFileEntity queryParentFileById(@Param("fileUuid") String fileUuid) ;

    /**
     * 文件删除
     * @param fileUuid
     */
    void deleteFile(String fileUuid);
    /**
     * 查询ztree列表关于对象acl
     * @return
     */
    List<ZtreeEntity> queryAclZtree();
}
